<

Android Java Gradle 移行ガイド

まとめ

最近 Android Studio を Flamingo にアップグレードした場合 リリースしており、既存の Android アプリを実行または構築している、 次のようなエラーが発生した可能性があります。

Error dialog in Android Studio Flamingo: MultipleCompilationErrorsException

このエラーの端末出力は次のとおりです。 次のようなものです。

FAILURE: Build failed with an exception.

* Where:
Build file '…/example/android/build.gradle'
* What went wrong:
Could not compile build file '…/example/android/build.gradle'.
> startup failed:
  General error during conversion: Unsupported class file major version 61

  java.lang.IllegalArgumentException: Unsupported class file major version 61
  	at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:189)
  	at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:170)
  	[…
  	 …
  	 … 209 more lines of Groovy and Gradle stack trace …
  	 …
  	 …]
  	at java.base/java.lang.Thread.run(Thread.java:833)

このエラーは、Android Studio Flamingo が原因で発生します。 バンドルされている Java SDK を 11 から 17 に更新します。 Flutter は、以下にバンドルされている Java のバージョンを使用します。 Android アプリを構築するための Android Studio。 Gradleのバージョン7.3より前走れない Java 17を使用する場合。

このエラーは、Gradle プロジェクトをアップグレードすることで修正できます。 互換性のあるバージョン (7.3 ~ 7.6.1 を含む) へのアップグレード 次のいずれかのアプローチを使用します。

解決策 #1: Android Studio を使用したガイド付き修正

Android Studio Flamingo で Gradle バージョンをアップグレードする 次のように:

ステップ1: Android Studio Flamingo で、androidフォルダ、 次のダイアログが表示されるはずです。

Dialog prompting you to upgrade Gradle

7.3 ~ 7.6.1 の Gradle リリースに更新します。

ステップ2: ガイド付きワークフローに従って Gradle を更新します。

Workflow to upgrade Gradle

解決策 #2: コマンドラインで手動で修正する

Flutter プロジェクトの先頭から次の操作を実行します。

ステップ1: プロジェクトの gradle ディレクトリに移動します。

cd android/gradle/wrapper

ステップ2: を編集しますgradle-wrapper.propertiesファイルに 変更distributionUrlフィールドを優先する Gradle バージョン (7.3 ~ 7.6.1 を含む):

distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-all.zip 

ノート

注意すべきいくつかの注意事項:

  • 影響を受ける Android アプリごとにこの手順を繰り返します。
  • この問題は次のような人に発生する可能性があります。しないでくださいJava と Android SDK をダウンロードする アンドロイドスタジオ。 Java SDK を手動でアップグレードした場合は、 バージョン 17 を使用しているが、Gradle をアップグレードしていない場合は、次のことができます。 もこの問題に遭遇します。修正方法は同じです: Gradle を 7.3 から 7.6.1 の間のリリースにアップグレードします。
  • 開発マシンそうかもしれないもっと含む Java SDK の 1 つのコピーよりも:
    • Android Studio アプリには Java のバージョンが含まれています。 Flutter がデフォルトで使用するもの。
    • Android Studio がインストールされていない場合は、 Flutter は、ユーザーが定義したバージョンに依存します。 シェルスクリプトのJAVA_HOME環境変数。
    • もしもJAVA_HOME定義されていない、Flutter のようです 誰にとってもjavaパス内で実行可能。 一度問題 122609土地、flutter doctorコマンドは、使用されている Java のバージョンを報告します。
  • Gradle をリリースにアップグレードする場合新しい7.6.1 よりも、 (可能性は低いですが) 問題が発生する可能性があります Gradle への変更によって生じるもの。非推奨の Gradle クラス、またはへの変更 Android のファイル構造:PackageName から ApplicationId を分割する。 この問題が発生した場合は、Gradle のリリースにダウングレードしてください 7.3 ~ 7.6.1 の間 (両端の値を含む)。
  • Flutter 3.10 にアップグレードしても、この問題は解決されません。